Dalam ekosistem ROCm, portabilitas sumber sering disalahartikan sebagai kesetaraan kinerja. Meskipun kode HIP yang portabel memungkinkan satu kode dasar untuk dijalankan di berbagai vendor perangkat keras (AMD dan NVIDIA), mencapai throughput maksimal membutuhkan pengakuan bahwa portabilitas sumber dan kinerja biner adalah hal yang terpisah.
1. Paradoks Portabilitas
Sebuah program HIP bersifat portabel pada tingkat sumber, artinya sintaks dan logika tetap konstan. Namun, Arsitektur Instruksi (ISA) yang mendasari sangat berbeda antar generasi (misalnya, AMD GCN vs. RDNA). Pembuatan yang "naif" yang mengabaikan perbedaan ini dapat menyebabkan penurunan kinerja yang signifikan.
2. Sensitivitas Arsitektur
Untuk mendapatkan kinerja maksimum, biner yang baik tetap sensitif terhadap arsitektur. Compiler harus mengoptimalkan alokasi register, penjadwalan wavefront/warp, serta pola akses memori secara khusus untuk unit komputasi GPU tujuan. Gagal menentukan arsitektur tujuan menghambat penggunaan perangkat keras khusus seperti unit Matrix Fused Multiply-Add (MFMA).
Kompatibilitas fungsional tidak berarti kesetaraan kinerja pada tingkat biner.
3. Kewajiban Sistem Build
Mengembangkan di luar "Hello World" membutuhkan sistem pipeline build yang canggih (seperti CMake) yang mengelola pembuatan jalur biner yang dioptimalkan secara ganda dari satu pohon kode sumber, memastikan instruksi yang tepat sampai ke perangkat keras yang tepat.